Object-Oriented Program Specialization: Aspects Into Aspects — Or Maybe Not?

نویسنده

  • Ulrik P. Schultz
چکیده

Automatic program specialization is a software engineering technique that configures a program fragment by generating an implementation dedicated to a specific usage context. Given a generic component that solves a whole family of problems and that is implemented in a standard programming language, program specialization can automatically configure this component by generating a specialized implementation. We consider automatic program specialization implemented using partial evaluation, which performs aggressive interprocedural constant propagation of all data types, and performs constant folding and control-flow simplifications based on the usage context [1]. Automatic program specialization has recently been defined in the context of object-oriented languages, and is here referred to as object-oriented program specialization [4, 5, 6, 7, 8]. As part of this work, we have developed an automatic program specializer for Java, named JSpec, which has been shown to give significant execution-time speedups on large programs. Specialization of an object-oriented program generates new, specialized methods, which must be reintroduced back into the class structure of the program. The dependencies between the specialized methods cross-cut the class structure of the program, which brings aspect-oriented programming to mind [2]. Using aspect-oriented programming, the result of specializing an object-oriented program can be elegantly expressed by encapsulating the specialized methods into an aspect. Concretely, the JSpec specializer generates specialized programs as AspectJ aspects [13], which are woven into the generic program as part of the compilation process. Specialization of an object-oriented program can be controlled using the specialization class framework [12]. A specialization class provides specialization information about a class in the program, by indicating what information is

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Aspects as Specialization Units for Framework-based SPLs

A popular technique to implement software product-lines is through object-oriented application frameworks. A major problem with application frameworks is the unstructured, cross-cutting character of their specialization interfaces, and the weak connections between the specialization goals of the application developer and the different parts of the specialization interface. In this position pape...

متن کامل

Towards a Tool Supporting Integration Testing of Aspect-Oriented Programs

Aspect-Oriented Programming is an emerging software engineering paradigm. It offers new constructs and tools improving separation of crosscutting concerns into single units called aspects. AspectJ, the most used aspect-oriented programming language, represents an extension of Java. In fact, existing object-oriented programming languages suffer from a serious limitation in modularizing adequatel...

متن کامل

G Eneralization / Specialization and R Ole In

The "IS A"-relationship and the mechanism of inheritance are powerful concepts that help to reduce complexity of models and redundancy in specifications. However, in the area of conceptual modeling, it seems that current Object Oriented Analysis methods put most emphasis on the structural aspects of the "IS A"-relationship while inheritance and sharing of behaviour are often not or ill-defined....

متن کامل

A Unification of Inheritance and Automatic Program Specialization

The object-oriented style of programming facilitates program adaptation and enhances program genericness, but at the expense of efficiency. Automatic program specialization can be used to generate specialized, efficient implementations for specific scenarios, but requires the program to be structured appropriately for specialization and is yet another new concept for the programmer to understan...

متن کامل

A Calculus of Untyped Aspect-Oriented Programs

Aspects have emerged as a powerful tool in the design and development of systems, allowing for the encapsulation of program transformations. The dynamic semantics of aspects is typically specified by appealing to an underlying object-oriented language via a compiler transformation known as weaving. This treatment is unsatisfactory for several reasons. Firstly, this semantics violates basic modu...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2001